在開始前後端服務之前,還記得我們昨天使用docker compose
指令,試圖啟動由docker-compose.middleware.yaml設置的PostgresSQL / Redis / Weaviate資料庫,但實際上用docker ps
指令檢查卻缺少了Weaviate嗎?由於已經找到原因了,今天立刻把缺漏的Weaviate資料庫啟動起來吧!
搜尋Weaviate,發現我們確實在yaml檔中看到相關的配置,但為什麼執行時卻沒有啟動呢?原因在於profile:
在docker compose中,profile允許定義不同的配置來根據不同需求啟動或不啟動某些服務,這是一種靈活的方式來管理多個服務的啟動行為。
回到docker-compose.middleware.yaml,我們看到Weaviate服務在定義時關聯了兩個profiles:
profiles:
- ""
- weaviate
這意味著:
當不指定任何profile時,Weaviate服務不會啟動(因為它依賴於特定的profile weaviate)。
只有在明確使用 --profile weaviate 時,docker compose才會啟動Weaviate服務。
所以說,我們只要再執行補上--profile weaviate的指令即可(注意這裡執行的目錄同樣要在docker資料夾中):
# 如果使用docker compose
docker compose --profile weaviate -f docker-compose.middleware.yaml up -d
# 或者使用docker-compose(依照自己可以使用的指令,兩者擇一即可。)
docker-compose --profile weaviate -f docker-compose.middleware.yaml up -d
完成後,再用docker ps
指令檢查,可以看到weaviate成功啟動了:
補上了Weaviate資料庫部屬,明天來接著看後端伺服器所需的前置作業。
Dify(github)
https://github.com/langgenius/dify/tree/main
Dify(官方文件)
https://docs.dify.ai/getting-started/install-self-hosted/local-source-code
今天分享的內容在教學文件中沒有特別說明,而且執行教學文件的內容其實也不會發出錯誤訊息,因此大家平常可以養成一個習慣,執行指令之後,再次確認執行結果是否如預期,如果非預期的話先留心這個部分,就算沒有當下處理,未來如果遇到卡關的地方,也能在回頭檢查的時候有跡可循,藉由提升了解程度,來減少未來錯誤的發生或者加快除錯效率。